assert = require('assert');
child = require('child_process');

nodejs = process.execPath;

if (module.parent) {
  // signal we've been loaded as a module
  console.log('Loaded as a module, exiting with status code 42.');
  process.exit(42);
}

// assert that the result of the final expression is written to stdout
child.exec(nodejs + ' --eval \'1337; 42\'',
  function(err, stdout, stderr) {
    assert.equal(parseInt(stdout), 42);
  });

// assert that module loading works
child.exec(nodejs + ' --eval \'require("' + __filename + '")\'',
  function(status, stdout, stderr) {
    assert.equal(status.code, 42);
  });

// module path resolve bug, regression test
child.exec(nodejs + ' --eval \'require("./test/simple/test-cli-eval.js")\'',
  function(status, stdout, stderr) {
    assert.equal(status.code, 42);
  });
